package com.opNaga.bpmp.connectingObject.messageFlow;

import com.opNaga.bpmp.BPMPElement;
import com.opNaga.bpmp.connectingObject.ConnectingObjectSource;
import com.opNaga.bpmp.swimlane.HasRoot;

import java.util.Iterator;

/**
 * User: Junyi BEI
 * Date: 19/01/2012
 * Time: 14:03
 */
public interface MessageFlowSource extends ConnectingObjectSource, HasRoot {
  public boolean addOutwardMessageFlow(BPMPElement be);

  public boolean removeOutwardMessageFlow(BPMPElement be);
  
  public boolean isOutwardMessageFlowEmpty();
  
  public int outwardMessageFlowSize();

  public Iterator<BPMPElement> iterateOutwardMessageFlows();
}
